import Vue from 'vue';
import Vuex from 'vuex';
Vue.use(Vuex);
//Vuex实例
var store = new Vuex.Store({
	state:{
		//可以把这里的state理解成组件中的data
		//如果在 组件中，想要访问，store 中的数据，只能通过 this.$store.state.*** 来访问
		count: 123
	},
	mutations:{
		//如果操作store中的state数据，只能通过调用mutations提供的方法，不推荐直接操作 state 中的数据，因为 万一导致了数据的紊乱
		//如果组件想调用mutations中的方法,只能使用 this.$store.commit('方法名')
		add(state){
			state.count++;
		},
		//mutations中的函数参数列表中最多支持2个参数,参数1:是 state 状态;参数2：通过 commit 提交过来的参数
		subtract(state,params){
			state.count -= params;
		}
	},
	//getter 只负责提供数据，不负责修改数据
	getters:{
		optCount(state){
			return '当前最新的count值是：' + state.count;
		}
	}
});

//导出
export default store;